namespace Whoot.DI.Internal
{
    public interface IRegister
    {
        /// <summary> 设置注册时候的id（唯一id） </summary>
        /// <param name="id">唯一id</param>
        IRegister WithId(object id);
        
        /// <summary> 别名 </summary>
        IRegister Alias<T>();

        /// <summary> 转换成单例 </summary>
        IRegister AsSingle();

        /// <summary> 转换成临时或者说多份 </summary>
        IRegister AsTransient();

        /// <summary> 不惰性创建 </summary>
        IRegister NonLazy();

        /// <summary> 惰性创建 </summary>
        IRegister Lazy();
    }
}